import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'

Vue.use(Vuex)
// require.content() 通过一个目录进行搜索,flag指定是否搜索子目录，以及与文件匹配的正则表达式。
// 此处为获取modules目录中的js文件
const modulesFiles = require.context('./modules', true, /\.js$/)

const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const exportDefault = modulesFiles(modulePath)
  modules[moduleName] = exportDefault.default
  // console.log(modules)
  return modules
}, {})

const store = new Vuex.Store({
  modules,
  getters
})

export default store
